#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
const int inf=0x7fffffff;


bool check(double mid,int s,int t,int n,int *a){
	int q[n+1];
	memset(q,0,sizeof(q));
    int l = 1, r = 0;
    double sum[n+1];
    sum[0] = 0;
    for(int i=1;i<=n;i++)
        sum[i] = sum[i-1]+(a[i-1]-mid);
    for(int i=1;i<=n;i++){
        if(i >= s){
            while(r >= l  &&  sum[i-s] < sum[q[r]]) r--;
            r++;
            q[r] = i-s;
        }
        if(l <= r  &&  q[l] < i-t) l++;
        if(l <= r  &&  sum[i]-sum[q[l]] >= 0) return true;
    }
    return false;
}



int main(){
	int n;
	cin>>n;
	int s,t;
	cin>>s>>t;
	int a[n];
	double l=inf,r=inf+1;
	for(int i=0;i<n;i++){
		cin>>a[i];
		l = min((int)l,a[i]);
		r = max((int)r,a[i]);
//		cout<<l<<" "<<r<<endl;
	}
	
	while(r-l >= 0.0001){
		double mid = (r+l)/2;
//		cout<<l<<" "<<mid<<" "<<r<<endl;
		if(check(mid,s,t,n,a))
			l = mid;
		else
			r = mid;
	}
	
	printf("%.3f",l);
	return 0;
}
